33 #define APP_RX_DATA_SIZE 32
34 #define APP_TX_DATA_SIZE 32
63 static int8_t CDC_Itf_Init(
void);
64 static int8_t CDC_Itf_DeInit(
void);
65 static int8_t CDC_Itf_Control(uint8_t cmd, uint8_t* pbuf, uint16_t length);
66 static int8_t CDC_Itf_Receive(uint8_t* pbuf, uint32_t *Len);
67 static void Error_Handler(
void);
68 static void ComPort_Config(
void);
69 static void TIM_Config(
void);
86 static int8_t CDC_Itf_Init(
void)
98 UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
101 UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
103 UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
123 if(HAL_TIM_Base_Start_IT(&
TimHandle) != HAL_OK)
142 static int8_t CDC_Itf_DeInit(
void)
161 static int8_t CDC_Itf_Control (uint8_t cmd, uint8_t* pbuf, uint16_t length)
165 case CDC_SEND_ENCAPSULATED_COMMAND:
169 case CDC_GET_ENCAPSULATED_RESPONSE:
173 case CDC_SET_COMM_FEATURE:
177 case CDC_GET_COMM_FEATURE:
181 case CDC_CLEAR_COMM_FEATURE:
185 case CDC_SET_LINE_CODING:
186 LineCoding.bitrate = (uint32_t)(pbuf[0] | (pbuf[1] << 8) |\
187 (pbuf[2] << 16) | (pbuf[3] << 24));
196 case CDC_GET_LINE_CODING:
199 pbuf[2] = (uint8_t)(
LineCoding.bitrate >> 16);
200 pbuf[3] = (uint8_t)(
LineCoding.bitrate >> 24);
206 case CDC_SET_CONTROL_LINE_STATE:
246 if(USBD_CDC_TransmitPacket(&
USBD_Device) == USBD_OK)
285 static int8_t CDC_Itf_Receive(uint8_t* Buf, uint32_t *Len)
287 HAL_UART_Transmit_DMA(&
UartHandle, Buf, *Len);
344 static void ComPort_Config(
void)
388 UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
391 if(
UartHandle.Init.Parity == UART_PARITY_NONE)
393 UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
397 UartHandle.Init.WordLength = UART_WORDLENGTH_9B;
402 UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
407 UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
409 UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
426 static void TIM_Config(
void)
436 TimHandle.Init.Period = (CDC_POLLING_INTERVAL*1000) - 1;
439 TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
440 if(HAL_TIM_Base_Init(&
TimHandle) != HAL_OK)
463 static void Error_Handler(
void)